
let CocosAnalytics = {

    init() {
        cocosAnalytics.enableDebug(AppConst.DEBUG);
        this.loginStart();
        this.loginSuccess();
    },

    loginStart(Channel = AppConst.CHANNEL) {
        // 开始登录
        cocosAnalytics.CAAccount.loginStart({
            // 获客渠道，指获取该客户的广告渠道信息  
            channel: Channel,
        });
    },

    loginSuccess() {
        // 登录成功
        cocosAnalytics.CAAccount.loginSuccess({
            userID: 'hh',
            age: 1,             // 年龄
            sex: 1,             // 性别：1 为男，2 为女，其它表示未知
            channel: AppConst.CHANNEL,   // 获客渠道，指获取该客户的广告渠道信息
        });
    },

    loginFailed() {
        // 登录失败
        cocosAnalytics.CAAccount.loginFailed({
            reason: '密码错误' // 失败原因
        });
    },

    logout() {
        // 退出登录
        cocosAnalytics.CAAccount.logout();
    },

    payBegin(data) {

        const paymentInfo = {
            amount: 100,                 // 现金金额或现金等价物的额度。例如 1 元传入 100，100 元则传入 10000
            orderID: 'od10001000111',    // 游戏平台订单 ID
            payType: '支付宝',            // 支付方式。如：支付宝、iOS IAP、银联支付等
            iapID: '大礼包',              // 商品 ID。玩家购买的充值包类型。例如：人民币 15 元 600 虚拟币包
            currencyType: 'CNY',         // 充值货币类型。请使用 ISO 4217 中规范的 3 位字母代码标记货币类型
            virtualCurrencyAmount: 1000, // 充值获得的虚拟币额度
            accountID: 'user1001',       // 消费的账号
            partner: '',                 // 账户渠道名称。例如：QQ、微信
            gameServer: '艾欧尼亚',       // 玩家充值的区服
            level: 10,                   // 玩家充值时的等级
            mission: '第 10 关',          // 玩家充值时所在的关卡或任务。亦可传入一个玩家打到的最高关卡
            reason: '英雄死亡'            // 充值失败的原因
          };

        // 开始支付
        cocosAnalytics.CAPayment.payBegin(paymentInfo);
    },

    paySuccess(data){
      // 支付成功
      let paymentInfo = null;
      cocosAnalytics.CAPayment.paySuccess(paymentInfo);
    },
      
    payFailed(data){
      // 支付失败
      let paymentInfo = null;
      cocosAnalytics.CAPayment.payFailed(paymentInfo);
    },

    payCanceled(data){
      // 支付取消
      let paymentInfo = null;
      cocosAnalytics.CAPayment.payCanceled(paymentInfo);
    },

    eventStart(eventID) {
        // 事件开始
        // 事件 ID（必填）可以任意填写, 不得超过 30 个字符
        // const eventID = "";

        const eventValue = {
            // 事件内容及标签可灵活自定义。后台根据事件内定义的标签进行相关统计和漏斗分析
            name: eventID,
            des: "Popup"
        };
        cocosAnalytics.CACustomEvent.onStarted(eventID, eventValue);
    },

    eventSuccess(eventID) {
        // 事件完成
        const eventValue = {
            // 事件内容及标签可灵活自定义。后台根据事件内定义的标签进行相关统计和漏斗分析
            name: eventID,
            des: "Popup"
        };
        cocosAnalytics.CACustomEvent.onSuccess(eventID, eventValue);
    },

    eventCancel(eventID) {
        // 事件取消
        const eventValue = {
            // 事件内容及标签可灵活自定义。后台根据事件内定义的标签进行相关统计和漏斗分析
            name: eventID,
            des: "Popup"
        };
        cocosAnalytics.CACustomEvent.onCancelled(eventID, eventValue);
    },

    eventFail(eventID) {
        // 事件失败
        const eventValue = {
            // 事件内容及标签可灵活自定义。后台根据事件内定义的标签进行相关统计和漏斗分析
            name: eventID,
            des: "Popup"
        };
        // 战斗失败原因
        const eventFailedReason = "广告加载异常";
        cocosAnalytics.CACustomEvent.onFailed(eventID, eventValue, eventFailedReason);
    },
};
module.exports = CocosAnalytics;